#include "mychatdialog.h"
#include "ui_mychatdialog.h"
#include<QDebug>
#include<QMessageBox>
MyChatDialog::MyChatDialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::MyChatDialog)
{
    ui->setupUi(this);
    setWindowTitle("通讯软件1.0");
    //初始化垂直布局的层
    m_layout = new QVBoxLayout;
    //举例外空间左右上下的边距
    m_layout->setContentsMargins(0,0,0,0);
    //设置每个控件间的间距
    m_layout->setSpacing(3);
    //设置控件的层
    ui->wdg_list->setLayout(m_layout);

    //初始化垂直布局的层
    m_grouplayout = new QVBoxLayout;
    //举例外空间左右上下的边距
    m_grouplayout->setContentsMargins(0,0,0,0);
    //设置每个控件间的间距
    m_grouplayout->setSpacing(3);
    //设置控件的层
    ui->wdg_list_4->setLayout(m_grouplayout);

    //创建菜单对象，指定父控件，父控件分则子控件的回收
    m_menu = new QMenu(this);
    //添加菜单项
    m_menu->addAction("添加好友");
    m_menu->addAction("系统设置");
    m_menu->addAction("创建群聊");
    //绑定点击菜单的槽函数
    connect(m_menu,SIGNAL(triggered(QAction*)),
            this , SLOT(slot_dealMenu(QAction*)));
}

MyChatDialog::~MyChatDialog()
{
    delete ui;
}
//添加好友useritem
void MyChatDialog::slot_addFriend(UserItem *item)
{
    //往层上添加好友控件
    m_layout->addWidget(item);
}
//删除好友的useritem
void MyChatDialog::removeFriendItem(UserItem *item)
{
    qDebug()<<__func__;
    m_layout->removeWidget(item);
}
//添加群聊groupitem
void MyChatDialog::slot_addGroup(UserItem *item)
{
    qDebug()<<__func__;
    m_grouplayout->addWidget(item);
}
//删除群聊的item
void MyChatDialog::removeGroupItem(UserItem *item)
{
    qDebug()<<__func__;
    m_grouplayout->removeWidget(item);
}

//设置自己的界面信息
void MyChatDialog::slot_setInfo(QString name, QString feeling, int icon)
{
    ui->lb_name->setText(name);
    ui->le_feeling->setText(feeling);
    QString iconPath = QString(":/tx/%1.png").arg(icon);
    ui->pb_icon->setIcon(QIcon(iconPath));
    qDebug() <<name<<feeling<<icon<<endl;
}
//重写关闭窗口事件
void MyChatDialog::closeEvent(QCloseEvent *event)
{
    //弹出询问窗口确认是否关闭
     if(QMessageBox::Yes==QMessageBox::question(this,"退出提示","是否要退出？")){
         event->accept();
         Q_EMIT SIG_close();
     }
     else{
         //忽略
         event->ignore();
     }
}
//点击菜单按钮的槽函数
void MyChatDialog::on_pb_menu_clicked()
{
    //显示菜单
    //先获取鼠标点击的位置，在鼠标点击的位置上方显示菜单
    QPoint p =QCursor::pos();
    //求出菜单的绝对高度
    QSize size = m_menu->sizeHint();
    m_menu->exec(QPoint(p.x(),p.y()-size.height()));
}
//处理菜单点击事件的槽函数
void MyChatDialog::slot_dealMenu(QAction *action)
{
    if("添加好友"==action->text()){
        //给kernel发送添加好友的信号
        Q_EMIT SIG_addFriend();
    }else if("系统设置"==action->text()){
        //处理系统设置
        QMessageBox::about(this,"提示","抱歉！改功能尚未开发");
    }else if("添加群聊"==action->text()){
        //给kernel发送添加群聊的信号
        Q_EMIT SIG_addGroup();
    }
}

